$(function(){
    var departmentId,name,password,roleId,userId,username,treeNodes,init,useTo,arr2,onOff = 0;
    var username_num = 1,password_num = 1;

    //下面这封装好的函数是获取URL中参数值的方法:
    (function($){
        $.getUrlParam = function(name)
        {
            var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r!=null) return unescape(r[2]); return null;
        }
    })(jQuery);

    //为页面初始化    部门列表    已经做好
    $.ajax({
        async:false,//关键,不能去掉
        type:'post',
        headers: {"Accept-CMS-Token":token},
        url:getdepartment,
        dataType:'json',
        success:function (data){
            if( data.resultCode == 200 )
            {
                var value = data.value;
                for( var i=0;i < value.length;i++ )
                {
                    $('.add-department').append('<option value="'+value[i].id+'">'+value[i].name+'</option>');
                };
            }
            else if(  data.resultCode == 515  )
            {
                reLogin();
            }
            else
            {
                alert('接口出错,非200,非515')
            };
            console.log('加载部门列表接口调通!!!!')
        },
        error:function(){
            console.log('加载部门列表接口请求失败')
        },
    });

    // 为页面初始化  角色列表     已经做好
    $.ajax({
        async:false,//关键,不能去掉
        type:'get',
        headers: {"Accept-CMS-Token":token},
        url:getrolelist,
        dataType:'json',
        success:function (data){
            if( data.resultCode == 200 )
            {
                var jueseList = data.value;
                for( var i=0;i<jueseList.length;i++ )
                {
                    $('.jueseList').append('<option value="'+jueseList[i].id+'">'+jueseList[i].roleName+'</option>');
                };
            }
            else if( data.resultCode == 515 )
            {
                reLogin();
            }
            else
            {
                alert('请求接口出错,非200,非515!')
            };
            console.log('角色列表接口请求成功!!!!')
        },
        error:function(){
            console.log('角色列表接口请求失败')
        },
    });

    // 验证输入的用户名至少6位....以及用户名称后台是否存在....
    $('input[name = username]').blur(function (){

        username = $('input[name = username]').val();
        //校验用户名后台是否存在...
        $.ajax({
            async:false,
            cache:false,
            headers: {"Accept-CMS-Token":token},
            url:account_checkusername,
            type:'get',
            data:{
                username:username
            },
            dataType:'json',
            success:function(result){
                if(result.resultCode == 200)
                {//角色名不存在可以向后台传递名称
                    onOff = 1;
                }
                else if(result.resultCode == 515)
                {
                    reLogin();
                }
                else
                {//角色名存在不能像后台返回数据;
                    onOff = 0;
                };
                console.log(result)
                console.log('校验用户接口成功!!')
            },
            error:function (){
                console.log('校验用户接口出错!')
            }
        });

        if(/\w{5,16}/g.test($('input[name = username]').val()))
        {//当用户名合法的时候...再来校验后台是否存在...
            $(this).siblings('span.nameTips').hide();
            username_num = 2 ;

            //当onOff为1的时候可以向下执行程序;onOff为0的时候提醒用户角色名已经存在;
            if( onOff == 0 )
            {
                $('.account_common').html('*此名称已经存在!请另外在起一个吧......');
                return false;
            }
            else if( onOff == 1 )
            {
                $('.account_common').html('');
            };
        }
        else
        {//当条件为false时...走下面的路...输入的不合法...
            $(this).siblings('span.nameTips').show();
            $('.account_common').html('');
            username_num = 1;
        };

    });

    // 验证输入的密码至少6位....
    $('input[name = password]').blur(function (){

        if(/\w{5,16}/g.test($('input[name = password]').val()))
        {
            // alert('可以做名字..');
            $(this).siblings('span.nameTips').hide();
            password_num = 2;
        }
        else
        {//当条件为false时...走下面的路...
            // alert('不可以做名字....');
            $(this).siblings('span.nameTips').show();
            password_num = 1;
        };

    });

    //新增账户,,默认就是启用,,将前端的信息收集好之后就传递到后台;  已经做好;
    $('.add-account-save').click(function(){
        departmentId = $('.add-department').children('option:selected').val();
        name = $('input[name = name]').val();
        password = $('input[name = password]').val();
        roleId = $('.jueseList').children('option:selected').val();
        username = $('input[name = username]').val();
        //校验提醒用户,,,必填项不能为空!!!
        if(departmentId =='' || name =='' || password =='' || roleId == '' || username == '')
        {
            if( username == '' )
            {
                $('.noEmpty').eq(0).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(0).hide();
            };
            if( password == '' )
            {
                $('.noEmpty').eq(1).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(1).hide();
            };
            if( name == '' )
            {
                $('.noEmpty').eq(2).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(2).hide();
            };
            if( departmentId == '' )
            {
                $('.noEmpty').eq(3).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(3).hide();
            };
            if( roleId == '' )
            {
                $('.noEmpty').eq(4).show();
                return false;
            }
            else
            {
                $('.noEmpty').eq(4).hide();
            };
        }
        else
        {
            $('.noEmpty').hide();
            if( username_num == 2 && password_num == 2 )
            {//只有在用户名和密码都合法的时候才可以继续接下来的流程.....
                if( onOff == 1 )
                {//向后台发送请求....
                    $.ajax({
                        type:'post',
                        headers: {"Accept-CMS-Token":token},
                        url:saveorupdate,
                        data:{
                            delStatus:0,
                            departmentId:departmentId,
                            name:name,
                            password:password,
                            roleId:roleId,
                            userId:'',
                            username:username
                        },
                        dataType:'json',
                        success:function (data){
                            if( data.resultCode == 200 )
                            {
                                alert('保存成功!');
                                window.location.href  = account_admin + '?id=' + $.getUrlParam('id');
                            }
                            else if(data.resultCode == 515)
                            {
                                reLogin()
                            }
                            else
                            {
                                alert('接口出错!');
                                return false;
                            };
                            console.log('新增账户接口请求成功!!!!')
                        },
                        error:function(){
                            console.log('新增账户接口请求失败')
                        },
                    });
                }
                else
                {
                    $('.account_common').html('*此名称已经存在!请另外在起一个吧......');
                    return false;
                };
            }
            else
            {
                alert('亲,用户名称或用户密码必须是字母,数字,下划线的组合...至少六位....请按照这个格式...');
                return false;
            };

        };
    });

    //有关ztree   已经做好
    var jueseId = $('.jueseList option').eq(1).val();

    // 配置ztree  已经做好
    var setting = {
        check : {
            enable : true,
            chkboxType: {"Y" : "ps", "N" : "ps"}
        },
        data : {
            simpleData : {
                enable : true,
                idKey : "id",
                pIdKey : "pId",
                rootPId : 0
            }
        }
    };

    //掉这个接口的原因是为了和下一个作比较    有关ztree
    $.ajax({
        type:'get',
        headers: {"Accept-CMS-Token":token},
        url:permissionlist,
        async:false,//这一步在这个页面当中是关键部分;千万不能去了;
        cache:false,
        dataType:'json',
        success:function(result){
            if(result.resultCode == 200)
            {
                init=result.value;
            }
            else if(result.resultCode == 515)
            {
                reLogin();
            }
            else
            {
                alert('接口非200,非515')
            }
            console.log('加载角色权限接口请求成功!!!!');
        },
        error:function (){
            console.log('加载角色权限接口获取失败!!');
        }
    });

    // 有关ztree  与编辑角色页面的js差不多;  已经做好
    function onloadztree(jueseId)
    {
        $.ajax({
            type:'get',
            headers: {"Accept-CMS-Token":token},
            url:getroleone,
            async : false,//是否异步
            cache:false,
            data:{
                roleId:jueseId,
            },
            dataType:'json',
            success:function(result){
                //将这个角色拥有的权限都从后台填到前端的页面当中;将ztree异步取值返回到页面当中;
                if( result.resultCode == 200 )
                {
                    var dataId = result.value.permissionlist;//将这条数据都取出来,,,,
                    arr2 = [];//取出来后台返回给我的那些被勾选的id;
                    for(var x=0;x<dataId.length;x++)
                    {
                        arr2.push( dataId[x].permissionId );
                    };
                    for( var i=0;i<init.length;i++ )
                    {
                        for( var j=0;j<arr2.length;j++ )
                        {
                            if( init[i].id === arr2[j] )
                            {
                                init[i]['checked'] = true;//赋值成功!
                            };
                        };
                    };
                    treeNodes = init;//将后台返回的数据都整合到页面当中
                }
                else if( result.resultCode == 515 )
                {
                    reLogin();
                };
                console.log('根据id查看角色接口调通!!!!');
            },
            error:function (){
                console.log('根据id查看角色接口失败!!');
            }
        });
        var t = $("#treeDemo");

        t = $.fn.zTree.init(t, setting, treeNodes);
    };

    // 为页面初始化ztree
    initZtree()
    // 点击相应的角色;从后台加载出来对应的权限;设置默认的角色权限;      已经做好!!!
    $('.jueseList').change(function(){
        var zhi = $(this).val();
        initZtree();
        clearZTree();
        onloadztree( zhi );
        // console.log(useTo);
    });

    function clearZTree()
    {
        for( var i=0;i<init.length;i++ )
        {
            init[i]['checked'] = false;//赋值成功!
        };
        treeNodes = init;//将后台返回的数据都整合到页面当中
    };

    //初始化ztree,,,,每次在加载新的数据之前都要初始化权限列表,然后在填数据;
    function initZtree()
    {
        $.ajax({
            async:false,
            cache:false,
            type:'get',
            headers: {"Accept-CMS-Token":token},
            url:permissionlist,
            dataType:'json',
            success:function(result){
                if( result.resultCode == 200 )
                {
                    useTo=result.value;//获取初始化的权限列表;    每次都需要把上一次勾选的都清空,进行一下初始化,在来加载新的;
                    var len = useTo.length;
                    for( var i=0;i<len;i++ )
                    {
                        useTo[i]['checked'] = false;
                    };
                }
                else if( result.resultCode == 515 )
                {
                    reLogin();
                }
                else
                {
                    alert('接口出错,非200,非515');
                }
                console.log('加载角色权限接口请求成功!!!!');
            },
            error:function (){
                console.log('加载角色权限接口获取失败!!');
            }
        });
        var t = $("#treeDemo");
        t = $.fn.zTree.init(t, setting, useTo);
    };

    // 当后台状态码是515时,让客户重新登录
    function reLogin()
    {
        alert('登录超时,请重新登录!');
        localStorage.clear();
        window.location.href = login_jump;
    };

    // 为add_account这个页面little下的nav设置id...
    var changeId = $.getUrlParam('id');
    $('.back a').attr( 'href','account_admin.html?id='+changeId );
    $('.fanhui').eq(0).children('a').attr( 'href','account_admin.html?id='+changeId );






});